package Hot100.Easy.LC136;

import java.util.HashMap;
import java.util.Map;

public class LC136 {
    public static void main(String[] args) {
        int[] nums={4,1,2,1,2};
        LC136 solution=new LC136();
        System.out.println(solution.singleNumber(nums));

    }
    public int singleNumber(int[] nums){
        Map<Integer,Integer> map=new HashMap<>();
        for(int i:nums){
            map.put(i, map.getOrDefault(i,0)+1);
        }
        for(int i:nums){
            if(map.get(i)==1){
                return i;
            }
        }
        return -1;
    }
    //使用异或运算^，出现两次的数，都会变成0，因此剩下的是那个出现一次的数
    public int singleNumbers(int[] nums) {
        int single = 0;
        for (int num : nums) {
            single ^= num;
        }
        return single;
    }
}
